package com.ktgj.customer.domain;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ktgj.customer.domain.vo.GuaranteeCaseParameterVo;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ktgj.common.core.annotation.Excel;
import com.ktgj.common.core.web.domain.BaseEntity;

/**
 * 理赔工单对象 case_claim
 * 
 * @author ruoyi
 * @date 2022-05-24
 */
public class CaseClaim implements Serializable
{
    public CaseClaim() {
        this.caseClaimPhotos = new ArrayList<>();
    }

    private static final long serialVersionUID = 1L;

    /** 理赔工单主键ID */
    private Long caseClaimId;

    private Long caseId;

    /** 会员ID */
    @Excel(name = "会员ID")
    private Long customerId;

    /** 会员名称 */
    @Excel(name = "会员名称")
    private String customername;

    /** 受益人名称 */
    @Excel(name = "受益人名称")
    private String favoree;

    /** 赔偿卡号 */
    @Excel(name = "赔偿卡号")
    private Long cardno;

    /** 赔偿金额 */
    @Excel(name = "赔偿金额")
    private BigDecimal compersationMoney;

    /** 手机号 */
    @Excel(name = "手机号")
    private String phone;

    /** 航班号 */
    @Excel(name = "航班号")
    private String flightno;

    /** 延误日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "延误日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date latedate;

    /** 赔偿日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "赔偿日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date compersationdate;

    /** 创建人 */
    @Excel(name = "创建人")
    private Long createId;

    /** 出发城市 */
    @Excel(name = "出发城市")
    private String departure;

    /** 到达城市 */
    @Excel(name = "到达城市")
    private String arrival;

    /** 理赔状态1 符合理赔 -1 拒绝理赔 0 未判断 2已理赔 3已核销 4资料不符合理赔 6已请款理赔中 */
    @Excel(name = "理赔状态1 符合理赔 -1 拒绝理赔 0 未判断 2已理赔 3已核销 4资料不符合理赔 6已请款理赔中")
    private String isvalid;

    /** 保单号 */
    @Excel(name = "保单号")
    private String insno;

    /** 原起飞时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "原起飞时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date departureTime;

    /** 审核人ID */
    @Excel(name = "审核人ID")
    private Long auditorId;

    /** 审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date auditorTime;

    /** 核销时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "核销时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date vefifyTime;

    /** 核销人ID */
    @Excel(name = "核销人ID")
    private Long verifyId;

    /** 核销金额 */
    @Excel(name = "核销金额")
    private BigDecimal vefifyAmount;

    /** 延误时长 */
    @Excel(name = "延误时长")
    private String delaytime;

    /** 出发城市三字码 */
    @Excel(name = "出发城市三字码")
    private String departurecode;

    /** 到达城市三字码 */
    @Excel(name = "到达城市三字码")
    private String arrivalcode;

    /** 实际起飞时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "实际起飞时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date realFlyawayDate;

    /** 实际落地时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "实际落地时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date reallandingtime;

    /** 原落地时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "原落地时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date scheduledlandingtime;

    /** 航班状态（航班延误，航班取消） */
    @Excel(name = "航班状态", readConverterExp = "航=班延误，航班取消")
    private String flightstatus;

    /** 机票订单号 */
    @Excel(name = "机票订单号")
    private Long fligthorderid;

    /** 延误理赔类型，航旅关怀 */
    @Excel(name = "延误理赔类型，航旅关怀")
    private String delayclaimtype;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    /** 备注 */
    @ApiModelProperty(value = "备注")
    private String remark;

    /** 期望完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "期望完成时间")
    private Date expectFinishTime;

    /** 期望回复时间（分钟） */
    @ApiModelProperty(value = "期望回复时间（分钟）")
    private long expectReplyTime;

    private GuaranteeCaseParameterVo guaranteeCase;

    /**
     * 理赔工单凭证图片
     */
    private List<CaseClaimPhoto> caseClaimPhotos;

    //理赔次数
    private String claimCount;
    //延误情况内容
    private String delayContent;

    public String getClaimCount()
    {
        return claimCount;
    }

    public void setClaimCount(String claimCount)
    {
        this.claimCount = claimCount;
    }

    public String getDelayContent()
    {
        return delayContent;
    }

    public void setDelayContent(String delayContent)
    {
        this.delayContent = delayContent;
    }

    public GuaranteeCaseParameterVo getGuaranteeCase()
    {
        return guaranteeCase;
    }

    public void setGuaranteeCase(GuaranteeCaseParameterVo guaranteeCase)
    {
        this.guaranteeCase = guaranteeCase;
    }

    public Long getCaseId()
    {
        return caseId;
    }

    public void setCaseId(Long caseId)
    {
        this.caseId = caseId;
    }

    public void setCaseClaimId(Long caseClaimId)
    {
        this.caseClaimId = caseClaimId;
    }

    public Long getCaseClaimId() 
    {
        return caseClaimId;
    }
    public void setCustomerId(Long customerId) 
    {
        this.customerId = customerId;
    }

    public Long getCustomerId() 
    {
        return customerId;
    }
    public void setCustomername(String customername) 
    {
        this.customername = customername;
    }

    public String getCustomername() 
    {
        return customername;
    }
    public void setFavoree(String favoree) 
    {
        this.favoree = favoree;
    }

    public String getFavoree() 
    {
        return favoree;
    }
    public void setCardno(Long cardno) 
    {
        this.cardno = cardno;
    }

    public Long getCardno() 
    {
        return cardno;
    }
    public void setCompersationMoney(BigDecimal compersationMoney) 
    {
        this.compersationMoney = compersationMoney;
    }

    public BigDecimal getCompersationMoney() 
    {
        return compersationMoney;
    }
    public void setPhone(String phone) 
    {
        this.phone = phone;
    }

    public String getPhone() 
    {
        return phone;
    }
    public void setFlightno(String flightno) 
    {
        this.flightno = flightno;
    }

    public String getFlightno() 
    {
        return flightno;
    }
    public void setLatedate(Date latedate) 
    {
        this.latedate = latedate;
    }

    public Date getLatedate() 
    {
        return latedate;
    }
    public void setCompersationdate(Date compersationdate) 
    {
        this.compersationdate = compersationdate;
    }

    public Date getCompersationdate() 
    {
        return compersationdate;
    }
    public void setCreateId(Long createId) 
    {
        this.createId = createId;
    }

    public Long getCreateId() 
    {
        return createId;
    }
    public void setDeparture(String departure) 
    {
        this.departure = departure;
    }

    public String getDeparture() 
    {
        return departure;
    }
    public void setArrival(String arrival) 
    {
        this.arrival = arrival;
    }

    public String getArrival() 
    {
        return arrival;
    }
    public void setIsvalid(String isvalid) 
    {
        this.isvalid = isvalid;
    }

    public String getIsvalid() 
    {
        return isvalid;
    }
    public void setInsno(String insno) 
    {
        this.insno = insno;
    }

    public String getInsno() 
    {
        return insno;
    }
    public void setDepartureTime(Date departureTime) 
    {
        this.departureTime = departureTime;
    }

    public Date getDepartureTime() 
    {
        return departureTime;
    }
    public void setAuditorId(Long auditorId) 
    {
        this.auditorId = auditorId;
    }

    public Long getAuditorId() 
    {
        return auditorId;
    }
    public void setAuditorTime(Date auditorTime) 
    {
        this.auditorTime = auditorTime;
    }

    public Date getAuditorTime() 
    {
        return auditorTime;
    }
    public void setVefifyTime(Date vefifyTime) 
    {
        this.vefifyTime = vefifyTime;
    }

    public Date getVefifyTime() 
    {
        return vefifyTime;
    }
    public void setVerifyId(Long verifyId) 
    {
        this.verifyId = verifyId;
    }

    public Long getVerifyId() 
    {
        return verifyId;
    }
    public void setVefifyAmount(BigDecimal vefifyAmount) 
    {
        this.vefifyAmount = vefifyAmount;
    }

    public BigDecimal getVefifyAmount() 
    {
        return vefifyAmount;
    }
    public void setDelaytime(String delaytime) 
    {
        this.delaytime = delaytime;
    }

    public String getDelaytime() 
    {
        return delaytime;
    }
    public void setDeparturecode(String departurecode) 
    {
        this.departurecode = departurecode;
    }

    public String getDeparturecode() 
    {
        return departurecode;
    }
    public void setArrivalcode(String arrivalcode) 
    {
        this.arrivalcode = arrivalcode;
    }

    public String getArrivalcode() 
    {
        return arrivalcode;
    }
    public void setRealFlyawayDate(Date realFlyawayDate) 
    {
        this.realFlyawayDate = realFlyawayDate;
    }

    public Date getRealFlyawayDate() 
    {
        return realFlyawayDate;
    }
    public void setReallandingtime(Date reallandingtime) 
    {
        this.reallandingtime = reallandingtime;
    }

    public Date getReallandingtime() 
    {
        return reallandingtime;
    }
    public void setScheduledlandingtime(Date scheduledlandingtime) 
    {
        this.scheduledlandingtime = scheduledlandingtime;
    }

    public Date getScheduledlandingtime() 
    {
        return scheduledlandingtime;
    }
    public void setFlightstatus(String flightstatus) 
    {
        this.flightstatus = flightstatus;
    }

    public String getFlightstatus() 
    {
        return flightstatus;
    }
    public void setFligthorderid(Long fligthorderid) 
    {
        this.fligthorderid = fligthorderid;
    }

    public Long getFligthorderid() 
    {
        return fligthorderid;
    }
    public void setDelayclaimtype(String delayclaimtype) 
    {
        this.delayclaimtype = delayclaimtype;
    }

    public String getDelayclaimtype() 
    {
        return delayclaimtype;
    }

    public List<CaseClaimPhoto> getCaseClaimPhotos() {
        return caseClaimPhotos;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public Date getExpectFinishTime() {
        return expectFinishTime;
    }

    public void setExpectFinishTime(Date expectFinishTime) {
        this.expectFinishTime = expectFinishTime;
    }

    public long getExpectReplyTime() {
        return expectReplyTime;
    }

    public void setExpectReplyTime(long expectReplyTime) {
        this.expectReplyTime = expectReplyTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("caseClaimId", getCaseClaimId())
            .append("customerId", getCustomerId())
            .append("customername", getCustomername())
            .append("favoree", getFavoree())
            .append("cardno", getCardno())
            .append("compersationMoney", getCompersationMoney())
            .append("phone", getPhone())
            .append("flightno", getFlightno())
            .append("latedate", getLatedate())
            .append("compersationdate", getCompersationdate())
            .append("createtime", getCreateTime())
            .append("createId", getCreateId())
            .append("departure", getDeparture())
            .append("arrival", getArrival())
            .append("isvalid", getIsvalid())
            .append("insno", getInsno())
            .append("departureTime", getDepartureTime())
            .append("auditorId", getAuditorId())
            .append("auditorTime", getAuditorTime())
            .append("vefifyTime", getVefifyTime())
            .append("verifyId", getVerifyId())
            .append("vefifyAmount", getVefifyAmount())
            .append("delaytime", getDelaytime())
            .append("remark", getRemark())
            .append("departurecode", getDeparturecode())
            .append("arrivalcode", getArrivalcode())
            .append("realFlyawayDate", getRealFlyawayDate())
            .append("reallandingtime", getReallandingtime())
            .append("scheduledlandingtime", getScheduledlandingtime())
            .append("flightstatus", getFlightstatus())
            .append("fligthorderid", getFligthorderid())
            .append("delayclaimtype", getDelayclaimtype())
            .toString();
    }
}
